1. Field of the Invention
The present invention relates to a method for enhancing access to a storage device, and more particularly to an access enhancing method by data prefetching in a storage device of a computer system operated by a database management system (DBMS).
2. Description of the Prior Art
Recently, along with the increase of a data amount handled by a system, a data based management system (DBMS) which is served for managing the data is becoming extremely important. Since the performance of the DBMS is closely related to the access performance to data stored in a storage device from a computer, to enhance the performance of the DBMS, the enhancement of the access performance to the storage device from the computer becomes extremely important.
In general, in the storage device, there has been adopted a technique in which a high-speed accessible data cache which temporarily holds data in the storage device is prepared, and a state in which data is present in cache (hereinafter referred to as “hit”) is created at the data leading time thus enhancing the access performance. Accordingly, to enhance the access performance of the storage device, it is very important to preliminarily read out (hereinafter “prefetch”) data which are predicted to be used before an actual access command arrives.
In a non-patent literature 1 “Informed Prefetching and Caching” written by R. Hugo Patterson et al, In Proc. of the 15th ACM Symposium on Operating System Principles. Pp.79–95, December. 1995, a function of an operation system (hereinafter referred to as “OS”) which prefetches data into a file cache on the computer using a hint issued by a program and a control method are discussed. In this non-patent literature 1, the program is amended by an administrator or the like such that the program issues hints related to files to be accessed hereinafter and areas to be accessed.
In a non-patent literature 2 “Automatic I/O Hint Generation through Speculative Execution” written by Fay Chang et al. the 3rd Symposium on Operating System Design and Implementation, February. 1999, a technique which exhibits a further progress compared to the technique disclosed in the non-patent literature 1 is disclosed. Here, to issue the hints, an amendment is added to a program such that processing which is expected to be executed hereinafter is executed in a speculative manner at the I/O standby time and the hints are issued based on the result of processing. Further, a tool which is served for automatically performing the correction of program is also disclosed.
In a non-patent literature 3 “Evaluation of Prefetching Mechanism Using Access Plan on Intelligent disk”, The 11th data engineering workshop (DEWS2000), proceedings of lectures 3B-3, issued on July 2000, CD-ROM, sponsored by Special Committee of Data Engineering, The Society of Electronic Information and Communication, there is disclosed a technique on a data prefetching method in which a storage device acquires an execution plan of inquiry processing which is expected to be executed by DBMS and which makes use of the execution plan are disclosed. Upon receiving the execution plan of processing, the storage device reads an index for a table in which DBMS is present and, thereafter, determines a block in which data of the corresponding table is stored. Then, the storage device continuously reads out the data on indexes and grasps a group of blocks which hold the data of the table whose access address is determined by the index, and the access to the group of blocks is scheduled whereby the prefetching can be executed effectively. Particularly, the storage device can execute this processing independently from the computer in which the DBMS is executed.
Among processing executed on the DBMS, there exists processing which executes, a large number of times, processing given by processing statements which are described using a structured query language (hereinafter referred to as “SQL”) (hereinafter referred to as “SQL statement”) having an equal form. In this case, it is difficult to specify the data to be prefetched corresponding to one processing. However, on the premise that the processing having the equal form are executed a large number of times, it is possible to discriminate a memory area of data which can be accessed by processing executed a large number of times with high probability and the memory area can be prefetched.
However, in the non-patent literature 1, although the evaluation of advantageous effects attributed to the DBMS is performed, the repeated execution of the processing using the SQL statement having the equal form is not described. Further, in the non-patent literature 2, although the utilization of result of speculative execution of processing for acquiring the advantageous effect even when the accessed data is changed corresponding to the input data is disclosed, the features of the input data (that is, the features of the SQL statement in the DBMS) is not taken into consideration.
Further, in the non-patent literature 3, with respect to the information given to the storage device, there is no description other than the execution planning. Accordingly, the information which discriminates the repeating of the SQL statement in the equal form is not transmitted and hence, the prefetching of data which requires the repeated execution of the SQL statement as the premise cannot be executed.